// 原型和原型链的理解
// 每个实例化的对象都会有proto属性，这个属性会指向改对象的原型，
// 每个原型都有constactor属性，指向关联的构造函数
// 每个构造函数都有一个prototype属性，这个属性会指向他的原型对象，

// 当读取实例对象的属性时，会先去内部找，找不到就去关联的原型对象中找，还没有就会一直往上找原型对象的原型，知道最顶层的Object.prototype,如果他的proto属性为null，那么最终会返回undefined
// 这样层层递进就形成了实例予原型之间的链式关系，就是原型链
